package es.eupt.amazingpi.model.usuario;

import java.io.Serializable;
import java.util.ArrayList;

import es.eupt.amazingpi.model.juego.Partida;
import es.eupt.amazingpi.sync.Mensaje;

public class MensajeUsuario extends Mensaje implements Serializable{

	private static final long serialVersionUID = 1L;
	
	public static String CODIGO_PI = "pi";
	public static String CODIGO_LIBERAR_PI = "liberarPi";
	public static String CODIGO_NOTIFICAR_PI = "notificarPi"; //si codigo=CODIGO_NOTIFICAR_PI, texto!=null.
	public static String CODIGO_PRIVADO = "privado"; //si codigo = CODIGO_PRIVADO, emisor!=null, receptor!=null y texto!=null
	
	public static String CODIGO_CREARPARTIDA = "crearPartida";
	public static String CODIGO_AGREGAR_AMIGO = "agregarAmigo";
	public static String CODIGO_BUSCAR_USUARIO = "buscarUsuario";
	public static String CODIGO_REGISTRAR_USUARIO = "registrarUsuario";
	
	public static String CODIGO_CONEXION = "conexion";
	public static String CODIGO_DESCONEXION = "desconexion";
	public static String CODIGO_INICIAR_JUEGO = "iniciarJuego";
	public static String CODIGO_TERMINAR_JUEGO = "terminarJuego";
	public static String CODIGO_FICHA = "ficha";
	public static String CODIGO_FICHA_RESUELTA = "fichaResuelta";
	
	private String username;
	private String password;
	private ArrayList<Usuario> listaAmigos;
	private ArrayList<Partida> listaPartidas;
	private ArrayList<Usuario> resultadosBusqueda;
	private String tipoPartida;
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public MensajeUsuario(){}
	
	public MensajeUsuario(String codigo, String texto){
		super(codigo, texto);
	}
	
	public boolean esConexion(){
		return this.codigo.equals(CODIGO_CONEXION);
	}
	
	public boolean esDesconexion(){
		return this.codigo.equals(CODIGO_DESCONEXION);
	}
	
	public boolean esIniciarJuego() {
		return this.codigo.equals(CODIGO_INICIAR_JUEGO);
	}
	
	public boolean esTerminarJuego() {
		return this.codigo.equals(CODIGO_TERMINAR_JUEGO);
	}

	public void setListaAmigos(ArrayList<Usuario> listaAmigos) {
		this.listaAmigos = listaAmigos;
	}

	public ArrayList<Usuario> getListaAmigos() {
		return listaAmigos;
	}

	public void setListaPartidas(ArrayList<Partida> listaPartidas) {
		this.listaPartidas = listaPartidas;
	}

	public ArrayList<Partida> getListaPartidas() {
		return listaPartidas;
	}
	
	public boolean esCrearPartida(){
		return this.codigo.equals(CODIGO_CREARPARTIDA);
	}
	
	public boolean esAgregarAmigo(){
		return this.codigo.equals(CODIGO_AGREGAR_AMIGO);
	}
	
	public boolean esBuscarUsuario(){
		return this.codigo.equals(CODIGO_BUSCAR_USUARIO);
	}
	
	public boolean esRegistrarUsuario(){
		return this.codigo.equals(CODIGO_REGISTRAR_USUARIO);
	}

	public ArrayList<Usuario> getResultadosBusqueda() {
		return resultadosBusqueda;
	}

	public void setResultadosBusqueda(ArrayList<Usuario> resultadosBusqueda) {
		this.resultadosBusqueda = resultadosBusqueda;
	}

	public String getTipoPartida() {
		return tipoPartida;
	}

	public void setTipoPartida(String tipoPartida) {
		this.tipoPartida = tipoPartida;
	}

}
